package com.bitoon.basketdudes.web.jpa;

import java.io.Serializable;
import javax.persistence.*;

@Entity
@Table(name = "semanal", schema = "rankings")
@NamedQueries({
    @NamedQuery(name = "Semanal.findAll", query = "SELECT s FROM Semanal s"),
    @NamedQuery(name = "Semanal.findByEquipoId", query = "SELECT s FROM Semanal s WHERE s.equipo.id = :equipoId"),
    //@NamedQuery(name = "Semanal.findByTorneoId", query = "SELECT s FROM Semanal s WHERE s.torneoId = :torneoId"),
    @NamedQuery(name = "Semanal.findByDivision", query = "SELECT s FROM Semanal s WHERE s.division = :division"),
    @NamedQuery(name = "Semanal.findByPartidos", query = "SELECT s FROM Semanal s WHERE s.partidos = :partidos"),
    @NamedQuery(name = "Semanal.findByPuntos", query = "SELECT s FROM Semanal s WHERE s.puntos = :puntos"),
    @NamedQuery(name = "Semanal.findByTorneoDivision", query = "SELECT s FROM Semanal s WHERE s.torneo.nombreUrl = :urlTorneo AND s.division = :division ORDER BY s.puntos DESC, s.partidos ASC, s.equipo_id ASC")
})
public class Semanal implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @Column(name="equipo_id", insertable=false, updatable=false)
    private Integer equipo_id;
    
    @ManyToOne
    @JoinColumn(name = "equipo_id", referencedColumnName = "id", insertable = false, updatable = false)
    private Equipo equipo;
    
    /*
    @Basic(optional = false)
    @Column(name = "equipo_id")
    private Integer equipoId;
     * 
     */

    /*
    @Basic(optional = false)
    @Column(name = "torneo_id")
    private int torneoId;
    */

    @ManyToOne
    @JoinColumn(name = "torneo_id", referencedColumnName = "id")
    private Torneo torneo;


    @Basic(optional = false)
    @Column(name = "division")
    private Integer division;
    @Column(name = "partidos")
    private Short partidos;
    @Column(name = "puntos")
    private Short puntos;

    public Semanal() {
    }

    /*
    public Semanal(Integer equipoId) {
        this.equipoId = equipoId;
    }
     *
     */

    public Semanal(Integer equipoId, int torneoId, Integer division) {
        //this.equipo.setId(equipoId);
        //this.torneoId = torneoId;
        //this.division = division;
    }

    /*
    public Integer getEquipoId() {
        return equipoId;
    }

    public void setEquipoId(Integer equipoId) {
        this.equipoId = equipoId;
    }
     *
     */

    /*
    public int getTorneoId() {
        return torneoId;
    }

    public void setTorneoId(int torneoId) {
        this.torneoId = torneoId;
    }
     * 
     */

    public Torneo getTorneo() {
        return torneo;
    }

    public void setTorneo(Torneo torneo) {
        this.torneo = torneo;
    }

    public Integer getDivision() {
        return division;
    }

    public void setDivision(Integer division) {
        this.division = division;
    }

    public Short getPartidos() {
        return partidos;
    }

    public void setPartidos(Short partidos) {
        this.partidos = partidos;
    }

    public Short getPuntos() {
        return puntos;
    }

    public void setPuntos(Short puntos) {
        this.puntos = puntos;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (getEquipo().getId() != null ? getEquipo().getId().hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Semanal)) {
            return false;
        }
        Semanal other = (Semanal) object;
        if ((this.getEquipo().getId() == null && other.getEquipo().getId() != null) || (this.getEquipo().getId() != null && !this.equipo.getId().equals(other.equipo.getId()))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.bitoon.basketdudes.web.jpa.Semanal[equipoId=" + getEquipo().getId() + "]";
    }

    public Integer getEquipo_id() {
        return equipo_id;
    }

    public void setEquipo_id(Integer equipo_id) {
        this.equipo_id = equipo_id;
    }

    public Equipo getEquipo() {
        return equipo;
    }

    public void setEquipo(Equipo equipo) {
        this.equipo = equipo;
    }

}
